package br.ufrgs.inf.sissw.app.models;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;

/**
 * Description: 
 * <br>
 * This class represents all the objects created in the AgendaActivity
 * it will be used to provide a quick and easy way to create new items in agenda
 * <br>
 * @author fernando
 *
 */
public class AgendaItem implements Serializable {
	private String itemTitle;
	private Date createdDate;
	private Date itemDate;
	private String itemDescription;
	private boolean isDone;
	/*
	private enum ITEM_TYPE { EXAM, MEETING, STANDARD };
	private ITEM_TYPE itemType;
	*/

	/**
	 * Custom constructor
	 * @param itemTitle - The title tht will be displayed for this item
	 */
	public AgendaItem(String itemTitle)
	{
		this.itemTitle = itemTitle;
		this.createdDate = new Date();
		this.itemDescription = "No Description";
		this.setDone(false);
	}
	
	/**
	 * @param itemName - This is the name that will be displayed for this item in the agenda
	 * @param eventDate - This is the date when the item will occur
	 */
	public AgendaItem(String itemTitle, Date itemDate)
	{
		this.itemTitle = itemTitle;
		this.createdDate = new Date();
		this.itemDate = itemDate;
		this.itemDescription = "No Description";
		this.setDone(false);
	}
	
	/**
	 * @param itemName - This is the name that will be displayed for this item in the agenda
	 * @param eventDate - This is the date when the item will occur
	 */	
	public AgendaItem(String itemTitle, Date itemDate, String itemDescription)
	{
		this.itemTitle = itemTitle;
		this.createdDate = new Date();
		this.itemDate = itemDate;
		this.itemDescription = itemDescription;
		this.setDone(false);
	}

	public String getItemTitle() {
		return itemTitle;
	}

	public void setItemTitle(String itemTitle) {
		this.itemTitle = itemTitle;
	}

	public Date getItemDate() {
		return (Date)itemDate.clone();
	}

	public void setItemDate(Date itemDate) {
		this.itemDate = itemDate;
	}

	public String getItemDescription() {
		return itemDescription;
	}

	public void setItemDescription(String itemDescription) {
		this.itemDescription = itemDescription;
	}

	public Date getCreatedDate() {
		return (Date)createdDate.clone();
	}
	
	public boolean isDone() {
		return isDone;
	}

	public void setDone(boolean isDone) {
		this.isDone = isDone;
	}
}
